package com.demo.java.OD51_100.OD82;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【按单词下标区间翻转文章内容】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145638197
 */
public class OdMain {
    public static void main(String[] args) {
        try {
            // 创建Scanner对象，用于从输入读取数据
            Scanner s = new Scanner(System.in);

            // 读取输入的字符串
            String inputStrs = s.nextLine();

            // 读取起始索引和结束索引
            int startIndex = s.nextInt();  // 起始索引
            int endIdex = s.nextInt();     // 结束索引

            // 将字符串按照空格拆分成单词数组
            String[] allWords = inputStrs.trim().split(" ");

            // 校验结束索引，确保不超出数组长度
            if (endIdex > allWords.length - 1)
                endIdex = allWords.length - 1;

            // 校验有效区间：起始索引大于结束索引，数组为空或者索引非法时，输出错误信息
            if (endIdex - startIndex <= 0 || allWords == null || allWords.length == 0 || startIndex < 0) {
                System.out.println("input error");
                return;
            }

            // 在指定区间内交换单词
            while (endIdex > startIndex) {
                // 临时变量存储起始位置的单词
                String tmp = allWords[startIndex];

                // 交换起始位置和结束位置的单词
                allWords[startIndex] = allWords[endIdex];
                allWords[endIdex] = tmp;

                // 更新索引
                ++startIndex;
                --endIdex;
            }

            // 输出交换后的结果
            for (int j = 0; j < allWords.length; ++j) {
                System.out.print(allWords[j]);

                // 在每个单词后输出空格，最后一个单词后不输出空格
                if (j != allWords.length - 1) {
                    System.out.print(" ");
                }
            }
        } catch (Exception e) {
            // 捕获异常并输出错误信息
            e.printStackTrace();
            System.out.println("input error");
        }
    }
}